JavaFX基础:2:使用javafx 您所在的位置:网站首页 maven jar plugin排除指定类 JavaFX基础:2:使用javafx

JavaFX基础:2:使用javafx

#JavaFX基础:2:使用javafx| 来源: 网络整理| 查看: 265

javafx-maven-plugin是一个Maven的插件,用于提供在Maven中管理JavaFX应用的方式。只需要通过mvn jfx:run即可运行JavaFX应用。在这篇文章中,我们利用在IDEA的IDEA中生成的Sample代码,结合javafx-maven-plugin介绍如何在mvn中进行JavaFX应用的构建和运行。

事前准备 代码构成

准备如下4个文件和对应的目录结构

liumiaocn:JavaFXSample liumiao$ tree . . ├── pom.xml └── src └── main ├── java │ └── com │ └── liumiaocn │ └── javademo │ ├── Controller.java │ └── Main.java └── resources └── fxml └── sample.fxml 8 directories, 4 files liumiaocn:JavaFXSample liumiao$ 代码详细 Main.java liumiaocn:JavaFXSample liumiao$ cat src/main/java/com/liumiaocn/javademo/Main.java package com.liumiaocn.javademo; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("/fxml/sample.fxml")); primaryStage.setTitle("Hello LiuMiao"); primaryStage.setScene(new Scene(root, 600, 600)); primaryStage.show(); } public static void main(String[] args) { launch(args); } } liumiaocn:JavaFXSample liumiao$

注意事项:getClass().getResource获取的是resource相对目录下的内容

Controller.java liumiaocn:JavaFXSample liumiao$ cat src/main/java/com/liumiaocn/javademo/Controller.java package com.liumiaocn.javademo; public class Controller { } liumiaocn:JavaFXSample liumiao$ sample.fxml liumiaocn:JavaFXSample liumiao$ cat src/main/resources/fxml/sample.fxml liumiaocn:JavaFXSample liumiao$

注意事项:此处的fx:controller中的package的设定需要进行设定,不然运行时无法会提示FXML相关的load的错误,非常容易陷入没有找到fxml文件的误解中,实际是运行时找到了fxml文件但是未曾找到此文件中设定的Controller

pom.xml liumiaocn:JavaFXSample liumiao$ cat pom.xml 4.0.0 com.liumiaocn javademo 0.0.1-SNAPSHOT jar javafxdemo JavaFX demo project com.zenjava javafx-maven-plugin 8.8.3 com.liumiaocn.javademo.Main liumiaocn:JavaFXSample liumiao$

注意事项:mainClass是唯一需要设定的内容,设定lanuch入口所在类即可。

注意事项:使用的javafx-maven-plugin的版本为8.8.3,为当前(2019/5/3)的最新版本。 在这里插入图片描述

github地址 https://github.com/javafx-maven-plugin/javafx-maven-plugin 执行确认

执行mvn clean jfx:run即可运行

执行命令:mvn clean jfx:run

执行示例如下所示:

liumiaocn:JavaFXSample liumiao$ mvn clean jfx:run [INFO] Scanning for projects... [INFO] [INFO] -----------------------< com.liumiaocn:javademo >----------------------- [INFO] Building javafxdemo 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ javademo --- [INFO] [INFO] >>> javafx-maven-plugin:8.8.3:run (default-cli) > :jar @ javademo >>> [INFO] [INFO] >>> javafx-maven-plugin:8.8.3:jar (jar) > [jfxjar]package @ javademo >>> [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ javademo --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 1 resource [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ javademo --- [INFO] Changes detected - recompiling the module! [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! [INFO] Compiling 2 source files to /Users/liumiao/easypack/containers/alpine/maven/demo/JavaFXSample/target/classes [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ javademo --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory /Users/liumiao/easypack/containers/alpine/maven/demo/JavaFXSample/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ javademo --- [INFO] No sources to compile [INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ javademo --- [INFO] No tests to run. [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ javademo --- [INFO] Building jar: /Users/liumiao/easypack/containers/alpine/maven/demo/JavaFXSample/target/javademo-0.0.1-SNAPSHOT.jar [INFO] [INFO]


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有